home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 125 / Computer Shopper CD-ROM Issue 125 (1998-07)(Dennis Publishing).iso / Business / Dazzler / DAZZLER.Z / CRegionResponse.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-26  |  4.2 KB  |  218 lines

  1. import java.awt.Color;
  2. import java.awt.Event;
  3. import java.awt.Graphics;
  4. import java.awt.Point;
  5. import java.awt.Rectangle;
  6. import java.io.DataInputStream;
  7.  
  8. public class CRegionResponse extends CDisplayResponse {
  9.    static final int SHOW_REGION = 1;
  10.    static final int INVERT_REGION = 4;
  11.    static final int FLASH_ONCE = 8;
  12.    static final int FLASH_3_TIMES = 16;
  13.    static final int RECTANGLE_REGION = 32;
  14.    static final int POLYGON_REGION = 64;
  15.    static final int CLEAR_INVERT = 128;
  16.    static final int IN_REGION = 1;
  17.    protected short m_cLogType;
  18.    protected int m_nFlags;
  19.    protected int m_nButton;
  20.    protected CPolyline m_Polyline = new CPolyline();
  21.    protected String m_strCursorName;
  22.    protected CKeyboard m_clsKeyboard = new CKeyboard();
  23.    private int m_cState;
  24.  
  25.    void DrawObject(Graphics var1, int var2, CPolyline var3) {
  26.       this.DrawObject(var1, var2, ((CDisplayResponse)this).GetDrawRect());
  27.    }
  28.  
  29.    void InvertRect(CRect var1) {
  30.       Graphics var2 = Globals.thePresView.GetDC().create();
  31.       var2.setColor(Color.white);
  32.       var2.setXORMode(Color.black);
  33.       var2.fillRect(var1.x, var1.y, var1.width, var1.height);
  34.    }
  35.  
  36.    boolean LoadFromFile(DataInputStream var1) {
  37.       this.m_nButton = FileLoad.ReadCPlusInt(var1);
  38.       this.m_strCursorName = FileLoad.ReadCString(var1);
  39.       this.m_nFlags = FileLoad.ReadCPlusInt(var1);
  40.       this.m_Polyline.LoadFromFile(var1);
  41.       this.m_clsKeyboard.LoadFromFile(var1);
  42.       return super.LoadFromFile(var1);
  43.    }
  44.  
  45.    boolean HitTest(Point var1) {
  46.       return (this.m_nFlags & 64) != 0 ? this.m_Polyline.inside(var1.x, var1.y) : ((CDisplayResponse)this).GetActualRect().inside(var1.x, var1.y);
  47.    }
  48.  
  49.    boolean OnKeyPress(int var1, Event var2) {
  50.       return this.m_clsKeyboard.CheckKeyPress(var1, var2);
  51.    }
  52.  
  53.    public CRegionResponse() {
  54.       super(20);
  55.       super.m_ActionManager = new CActionManager();
  56.       this.m_strCursorName = "";
  57.       this.m_nButton = 17;
  58.       this.m_cState = 0;
  59.       this.m_nFlags = 32;
  60.    }
  61.  
  62.    CResponseReturn DoResponse(int var1) {
  63.       if ((this.m_nFlags & 8) != 0) {
  64.          this.DrawObject((Graphics)null, 8, (CRect)((CDisplayResponse)this).GetDrawRect());
  65.       } else if ((this.m_nFlags & 16) != 0) {
  66.          this.DrawObject((Graphics)null, 16, (CRect)((CDisplayResponse)this).GetDrawRect());
  67.       }
  68.  
  69.       return super.DoResponse(var1);
  70.    }
  71.  
  72.    void InvertRgn(CPolyline var1) {
  73.       Graphics var2 = Globals.thePresView.GetDC().create();
  74.       var2.setColor(Color.white);
  75.       var2.setXORMode(Color.black);
  76.       var2.fillPolygon(var1);
  77.    }
  78.  
  79.    void Invert(CRect var1) {
  80.       if ((this.m_nFlags & 64) != 0) {
  81.          this.InvertRgn(this.m_Polyline);
  82.       } else {
  83.          this.InvertRect(var1);
  84.       }
  85.    }
  86.  
  87.    CActionManager GetActionManager() {
  88.       return super.m_ActionManager;
  89.    }
  90.  
  91.    boolean OnMouseClick(int var1, int var2, Point var3, int var4, CRect var5) {
  92.       return var4 == 7 && this.HitTest(var3) && (var1 == 2022 && (this.m_nButton & 16) != 0 || var1 == 2025 && (this.m_nButton & 16) != 0 || var1 == 2023 && (this.m_nButton & 8) != 0 || var1 == 2026 && (this.m_nButton & 8) != 0 || var1 == 2021 && (this.m_nButton & 32) != 0 || var1 == 2024 && (this.m_nButton & 32) != 0) && ((var2 & 1) > 0 && (this.m_nButton & 1) > 0 || (var2 & 2) > 0 && (this.m_nButton & 4) > 0);
  93.    }
  94.  
  95.    boolean SetResponse() {
  96.       boolean var1 = false;
  97.       this.m_cState = 0;
  98.       CRect var2 = new CRect();
  99.       int var3 = 1152;
  100.       if ((this.m_nFlags & 64) > 0) {
  101.          var2.reshape(this.m_Polyline.GetBoundingRect());
  102.          ++var2.width;
  103.          ++var2.height;
  104.          var3 |= 2;
  105.       } else {
  106.          var2.reshape(((CDisplayResponse)this).GetActualRect());
  107.       }
  108.  
  109.       if (!Globals.thePresView.IsDefining() && (this.m_nFlags & 1) == 0) {
  110.          var3 |= 512;
  111.       }
  112.  
  113.       if (!((Rectangle)var2).equals(((CDisplayResponse)this).GetDrawRect())) {
  114.          if (!((CDisplayResponse)this).GetDrawRect().isEmpty()) {
  115.             Globals.thePresView.InvalidateOffScreenRect(((CDisplayResponse)this).GetDrawRect());
  116.          }
  117.  
  118.          ((CDisplayResponse)this).SetDrawRect(var2);
  119.          var1 = true;
  120.       }
  121.  
  122.       Globals.thePresView.AddDrawObject((CIconObject)this, var3, var1);
  123.       return true;
  124.    }
  125.  
  126.    CPolyline GetActualPolyline() {
  127.       return this.m_Polyline;
  128.    }
  129.  
  130.    boolean OnMouseMove(int var1, Point var2, int var3, CRect var4) {
  131.       if (var3 == 7) {
  132.          if (this.HitTest(var2)) {
  133.             if ((this.m_cState & 1) == 0) {
  134.                this.m_cState |= 1;
  135.                if ((this.m_nFlags & 4) != 0) {
  136.                   this.DrawObject((Graphics)null, 4, (CRect)((CDisplayResponse)this).GetDrawRect());
  137.                }
  138.  
  139.                if ((((CResponse)this).GetResponseFlags() & 32) == 0 && super.m_ActionManager.GetIconList().size() > 0) {
  140.                   super.m_ActionManager.OnDoAction();
  141.                   Globals.thePresView.RenderAndDrawDirtyList();
  142.                }
  143.             }
  144.          } else if ((this.m_cState & 1) != 0) {
  145.             this.m_cState &= -2;
  146.             if ((this.m_cState & 4) > 0) {
  147.                this.DrawObject((Graphics)null, 128, (CRect)((CDisplayResponse)this).GetDrawRect());
  148.             }
  149.  
  150.             if ((((CResponse)this).GetResponseFlags() & 32) == 0 && super.m_ActionManager.GetIconList().size() > 0) {
  151.                super.m_ActionManager.RemoveDrawObjects();
  152.                Globals.thePresView.RenderAndDrawDirtyList();
  153.             }
  154.          }
  155.       }
  156.  
  157.       return false;
  158.    }
  159.  
  160.    void DrawObject(Graphics var1, int var2, CRect var3) {
  161.       if (var1 == null) {
  162.          var1 = Globals.thePresView.GetDC();
  163.       }
  164.  
  165.       label38:
  166.       switch (var2) {
  167.          case 4:
  168.             if ((this.m_cState & 4) == 0) {
  169.                this.Invert(var3);
  170.                this.m_cState |= 4;
  171.             }
  172.             break;
  173.          case 8:
  174.             if ((this.m_cState & 4) != 0) {
  175.                this.Invert(var3);
  176.             }
  177.  
  178.             this.Invert(var3);
  179.             Utils.Wait(300);
  180.             this.Invert(var3);
  181.             break;
  182.          case 16:
  183.             if ((this.m_cState & 4) != 0) {
  184.                this.Invert(var3);
  185.             }
  186.  
  187.             int var4 = 0;
  188.  
  189.             while(true) {
  190.                this.Invert(var3);
  191.                Utils.Wait(100);
  192.                this.Invert(var3);
  193.                Utils.Wait(100);
  194.                ++var4;
  195.                if (var4 >= 3) {
  196.                   break label38;
  197.                }
  198.             }
  199.          case 128:
  200.             if ((this.m_cState & 4) != 0) {
  201.                this.Invert(var3);
  202.                this.m_cState &= -5;
  203.             }
  204.       }
  205.  
  206.       if ((this.m_nFlags & 1) != 0) {
  207.          var1.setColor(Color.black);
  208.          if ((this.m_nFlags & 64) != 0) {
  209.             var1.drawPolygon(this.m_Polyline);
  210.             return;
  211.          }
  212.  
  213.          var1.drawRect(var3.x, var3.y, var3.width - 1, var3.height - 1);
  214.       }
  215.  
  216.    }
  217. }
  218.